/*
srkrt_disp_gui_callbacks.h
Ce fichier contient les protoypes des fonctions callbacks utilisées pour l'interface.
*/
#ifndef INCLUDE_SRKRT_DISP_GUI_CALLBACK
#define INCLUDE_SRKRT_DISP_GUI_CALLBACK

#include "srkrt_disp_gui.h"

#ifdef NETWORK
#include "srkrt_disp_gui_ivy.h"
#endif

void disp_gtk_init(GtkWidget* fixed, GtkWidget* table, Global* global);

/* fonction callback qui permet de changer d'image des pions */
void disp_gtk_on_change_pawns(GtkWidget* widget, Global* global);

/* fonction callback qui permet de changer l'image de fond */
void disp_gtk_on_change_background(GtkWidget* widget, Global* global);

/* fonction callback qui permet de changer le niveau */
void disp_gtk_on_change_level(GtkWidget* widget, Global* global);

/* fonction qui surligne le pion selectionne, la coordonnee du pion est donnee dans global->move*/
void disp_gtk_highlight_pawn(Global* global);

/* fonction qui reinitialise une nouvelle partie */
void disp_gtk_reset(Global* global);

/* fonction callback qui reinitialise une partie */
void disp_gtk_on_new(GtkWidget* widget, Global* global);

/* fonction callback qui met à jour l'indicateur de selection du nombre de coups a annuler */
void disp_gtk_on_change_value(GtkWidget* widget, gpointer data);

/* fonction callback qui annule des coups */
void disp_gtk_on_cancel(GtkWidget* widget, Global* global);

/* fonction callback qui permet de sauvegarder une partie */
void disp_gtk_on_save(GtkWidget* widget, Global* global);

/* fonction callback qui permet de charger une partie */
void disp_gtk_on_load(GtkWidget* widget, Global* global);

/* fonction callback qui permet de revoir une partie */
void disp_gtk_on_review(GtkWidget* widget, Global* global);

/* fonction qui rejoue une partie */
bool disp_gtk_replay(Global* global);

/* fonction qui permet de charger une partie et de rejouer les coups toutes les time secondes */
void disp_gtk_load(Global* global);

/* fonction callback qui affiche une fenetre "about" */
void disp_gtk_on_about(GtkWidget* widget, gpointer data);

/* fonction callback qui affiche les regles du jeu */
void disp_gtk_on_rules(GtkWidget* widget, gpointer data);

/* fonction callback qui demande confirmation avant de fermet l'application */
void disp_gtk_on_quit(GtkWidget* widget, Global* global);

/* fonction callback qui recupere les coordonnees de la case cliquee par le joueur */
void disp_gtk_on_press_square(GtkWidget* widget, GdkEventButton *event,  Global* global);

void disp_gtk_cpu_play(Global* global);

/* fonction qui affiche une fenetre avec le resultat de la partie */
void disp_gtk_end(Global* global);
	
/* fonction qui effectue le coup : global->move */
bool disp_gtk_move(Global* global);

#endif
